package Object;

public class ObjectDemo {
    public static void main(String[] args) {
        /*
        输出引用变量时默认调用Object类的toString（）方法
        该方法返回的字符串格式为：类的全称@hashcode值
        但通常这个返回结果无意义
        我们常常重写toString（）来返回具体的属性值
         */
        /*
        调用Object类的equals（），内部还是在使用==比较地址，没有参考意义
        若想比较对象的属性值是否相同，我们认为Object类的equals（）不可以，因此需要重写

        Point p1 = new Point(100,200);
        Point p2 = new Point(100,200);

        System.out.println(p1==p2);
        System.out.println(p1.equals(p2));

         */
        String s1 = new String("hello");
        String s2 = new String("hello");
        //string类重写了equals（）来比较字符串内容是否相同
        System.out.println(s1.equals(s2));

        StringBuilder builder1 = new StringBuilder("hello");
        StringBuilder builder2 = new StringBuilder("hello");
        System.out.println(builder1.equals(builder2));  //false

        //s1与builder的类型不同，所以equals（）一定是FALSE
        System.out.println(s1.equals(builder1)); //false
    }
}
